user_prompt = '''
你的任务是生成基础级别和扩展级别的测试用例。可以考虑的方向有：
1. 遍历信号量的取值；
2. 电源状态的切换：电源状态有On、Start、Off三种，测试用例应该覆盖这些状态的切换，或在前置条件中修改电源状态，注意不要只考虑On和Off状态的切换，也要考虑Start状态的切换，例如ON 切换为START再切换为ON；
3. 一些需求和时间相关，在时间临界前后设计边界值测试用例，尤其是是时间应该考虑不足要求时间的反例；
4. 雨刮开关应该切换断开和闭合状态，例如冒烟测试中有闭合雨刮低速档开关，扩展测试用例的初始条件应考虑断开雨刮低速档开关；
5. 可以尝试重复操作，比如：按下雨刮停止位按钮并释放3次，观察雨刮器的行为是否符合预期；重复发送信号量（不同取值）并验证预期结果；
6. 测试名称不应用基础/扩展命名，应结合初始状态和操作步骤进行命名。比如不要使用_基础测试用例_这样的命名。
7. 扩展测试用例应包含状态遍历，状态取反，操作扩充等内容，电源状态应有三种模式切换，并尽可能全面充分。
8. 每条扩展测试用例不要太多操作，尽可能区分成多条测试用例。

前置条件扩展建议：
1. 电源状态可以考虑On、Start、Off三种状态的切换。
2. 可以考虑删除一些断开开关的操作。

请根据以下待测需求生成测试用例：
    需求名称：{case_name}，
    需求文本: {original_text}
已有的冒烟级别测试用例如下：
```json
{existing_basic_test}
```

请生成JSON格式的基础或扩展测试用例，包含以下json中的字段，其中preconditions字段为前置条件，operate_step字段为操作步骤，expected_results字段为预期结果，其中所有的动作都应该放入到operate_step字段中，与预期结果一一对应：
返回格式为：
```json
[{{
    "subsystem": "...",
    "function_module": "...",
    "test_name": "...",
    "preconditions":"...",
    "operate_step":"...",
    "expected_results":"...",
    "test_environment":"...",
    "test_level":"..."
}}]
```
'''

user_twice_prompt = '''
你的任务是生成基础级别和扩展级别的测试用例。可以考虑的方向有：
1. 遍历信号量的取值；
2. 电源状态的切换：电源状态有On、Start、Off三种，测试用例应该覆盖这些状态的切换，或在前置条件中修改电源状态，注意不要只考虑On和Off状态的切换，也要考虑Start状态的切换，例如ON 切换为START再切换为ON；
3. 一些需求和时间相关，在时间临界前后设计边界值测试用例，尤其是是时间应该考虑不足要求时间的反例；
4. 雨刮开关应该切换断开和闭合状态，例如冒烟测试中有雨刮低速档开关有效，扩展测试用例应考虑开关无效；
5. 可以尝试重复操作，比如：按下雨刮停止位按钮并释放3次，观察雨刮器的行为是否符合预期；重复发送信号量（不同取值）并验证预期结果；
6. 测试名称不应用基础/扩展命名，应结合初始状态和操作步骤进行命名。比如不要使用_基础测试用例_这样的命名。
7. 扩展测试用例应包含状态遍历，状态取反，操作扩充等内容，电源状态应有三种模式切换，并尽可能全面充分。
8. 每条扩展测试用例不要太多操作，尽可能区分成多条测试用例。

前置条件扩展建议：
1. 电源状态可以考虑On、Start、Off三种状态的切换。
2. 可以考虑删除一些断开开关的操作。
请根据以下待测需求生成测试用例：
    需求名称：{case_name}，
    需求文本: {original_text}
已有的冒烟级别测试用例如下：
```json
{existing_basic_test}
```

目前以及有了一些扩展/基础测试用例，请基于已有的测试用例进行补充和完善：
```json
{existing_extended_test}
```

请生成JSON格式的基础或扩展测试用例，包含以下json中的字段，其中preconditions字段为前置条件，operate_step字段为操作步骤，expected_results字段为预期结果，其中所有的动作都应该放入到operate_step字段中，与预期结果一一对应：
返回格式为：
```json
[{{
    "subsystem": "...",
    "function_module": "...",
    "test_name": "...",
    "preconditions":"...",
    "operate_step":"...",
    "expected_results":"...",
    "test_environment":"...",
    "test_level":"..."
}}]
```
'''


llm_response = '''
```json
{example_test_cases}
```
'''



example_prompt = '''
你的任务是生成基础级别和扩展级别的测试用例。可以考虑的方向有：
1. 遍历信号量的取值；
2. 电源状态的切换：电源状态有On、Start、Off三种，测试用例应该覆盖这些状态的切换，或在前置条件中修改电源状态，注意不要只考虑On和Off状态的切换，也要考虑Start状态的切换，例如ON 切换为START再切换为ON；
3. 一些需求和时间相关，在时间临界前后设计边界值测试用例，尤其是是时间应该考虑不足要求时间的反例；
4. 雨刮开关应该切换断开和闭合状态，例如冒烟测试中有雨刮低速档开关有效，扩展测试用例应考虑开关无效；
5. 可以尝试重复操作，比如：按下雨刮停止位按钮并释放3次，观察雨刮器的行为是否符合预期；重复发送信号量（不同取值）并验证预期结果；
6. 测试名称不应用基础/扩展命名，应结合初始状态和操作步骤进行命名。比如不要使用_基础测试用例_这样的命名。
7. 扩展测试用例应包含状态遍历，状态取反，操作扩充等内容，电源状态应有三种模式切换，并尽可能全面充分。
8. 每条扩展测试用例不要太多操作，尽可能区分成多条测试用例。

前置条件扩展建议：
1. 电源状态可以考虑On、Start、Off三种状态的切换。
2. 可以考虑删除一些断开开关的操作。

请根据以下待测需求生成测试用例：
    需求名称: 灵敏度设置反馈,
    原始文本: 电源ON档，当BDC收到HU_WiperRainSensitivitySet有效值信号，应持续反馈BCM_WiperRainSensitivity信号，直到收到下一次的车机信号有效值跳变，反馈信号也跟着跳变。
冒烟测试用例为：
```json
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度1",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 1\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 0",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 1\n2.BCAN:BCM_WiperRainSensitivity = 1",
    "test_level":"冒烟"
}}
```

请生成JSON格式的基础或扩展测试用例，包含以下json中的字段，其中preconditions字段为前置条件，operate_step字段为操作步骤列表，expected_results字段为预期结果，其中所有的动作都应该放入到operate_step字段中，与预期结果列表一一对应：
返回格式为：
```json
[{{
    "subsystem": "...",
    "function_module": "...",
    "test_name": "...",
    "preconditions":"...",
    "operate_step":"...",
    "expected_results":"...",
    "test_environment":"...",
    "test_level":"..."
}}]
...
```
'''

example_response = '''
```json
[
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度2",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 2\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 0",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 2\n2.BCAN:BCM_WiperRainSensitivity = 2",
    "test_level":"基础"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度3",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 3\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 0",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 3\n2.BCAN:BCM_WiperRainSensitivity = 3",
    "test_level":"基础"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度4",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 4\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 0",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 4\n2.BCAN:BCM_WiperRainSensitivity = 4",
    "test_level":"基础"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度5",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 5\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 0",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 5\n2.BCAN:BCM_WiperRainSensitivity = 5",
    "test_level":"基础"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度6",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 6\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 0",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 6\n2.BCAN:BCM_WiperRainSensitivity = 6",
    "test_level":"基础"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度7",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 7\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 0",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 7\n2.BCAN:BCM_WiperRainSensitivity = 7",
    "test_level":"基础"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_灵敏度从0到7后再到0",
    "preconditions":"1.电源模式为ON",
    "operate_step":"1.发送INFOCAN:HU_WiperRainSensitivitySet = 1\n2.发送INFOCAN:HU_WiperRainSensitivitySet = 2\n3.发送INFOCAN:HU_WiperRainSensitivitySet = 3\n4.发送INFOCAN:HU_WiperRainSensitivitySet = 4\n5.发送INFOCAN:HU_WiperRainSensitivitySet = 5\n6.发送INFOCAN:HU_WiperRainSensitivitySet = 6\n7.发送INFOCAN:HU_WiperRainSensitivitySet = 7\n8.发送INFOCAN:HU_WiperRainSensitivitySet = 6\n9.发送INFOCAN:HU_WiperRainSensitivitySet = 5\n10.发送INFOCAN:HU_WiperRainSensitivitySet = 4\n11.发送INFOCAN:HU_WiperRainSensitivitySet = 3\n12.发送INFOCAN:HU_WiperRainSensitivitySet = 2\n13.发送INFOCAN:HU_WiperRainSensitivitySet = 1",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 1\n2.BCAN:BCM_WiperRainSensitivity = 2\n3.BCAN:BCM_WiperRainSensitivity = 3\n4.BCAN:BCM_WiperRainSensitivity = 4\n5.BCAN:BCM_WiperRainSensitivity = 5\n6.BCAN:BCM_WiperRainSensitivity = 6\n7.BCAN:BCM_WiperRainSensitivity = 7\n8.BCAN:BCM_WiperRainSensitivity = 6\n9.BCAN:BCM_WiperRainSensitivity = 5\n10.BCAN:BCM_WiperRainSensitivity = 4\n11.BCAN:BCM_WiperRainSensitivity = 3\n12.BCAN:BCM_WiperRainSensitivity = 2\n13.BCAN:BCM_WiperRainSensitivity = 1",
    "test_level":"基础"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_电源模式OFF_灵敏度设置反馈CAN信号_灵敏度1",
    "preconditions":"1.电源模式为ON",
    "operate_step":""1.发送INFOCAN:HU_WiperRainSensitivitySet = 2\n2.电源模式为OFF\n3.发送INFOCAN:HU_WiperRainSensitivitySet = 1"",
    "expected_results":""1.BCAN:BCM_WiperRainSensitivity = 2\n2.BCAN:BCM_WiperRainSensitivity = 2"",
    "test_level":"扩展"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_无效边界值测试",
    "preconditions":"1.电源模式为ON",
    "operate_step":""1.发送INFOCAN:HU_WiperRainSensitivitySet = 1\n2.电源模式为START\n3.发送INFOCAN:HU_WiperRainSensitivitySet = 2"",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 1\n2.BCAN:BCM_WiperRainSensitivity = 1",
    "test_level":"扩展"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_无效边界值测试",
    "preconditions":"1.电源模式为ON",
    "operate_step":""1.发送INFOCAN:HU_WiperRainSensitivitySet = 1\n2.电源模式为START\n3.发送INFOCAN:HU_WiperRainSensitivitySet = 3"",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 1\n2.BCAN:BCM_WiperRainSensitivity = 1",
    "test_level":"扩展"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_无效边界值测试",
    "preconditions":"1.电源模式为ON",
    "operate_step":""1.发送INFOCAN:HU_WiperRainSensitivitySet = 1\n2.电源模式为START\n3.发送INFOCAN:HU_WiperRainSensitivitySet = 4"",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 1\n2.BCAN:BCM_WiperRainSensitivity = 1",
    "test_level":"扩展"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_无效边界值测试",
    "preconditions":"1.电源模式为ON",
    "operate_step":""1.发送INFOCAN:HU_WiperRainSensitivitySet = 1\n2.电源模式为START\n3.发送INFOCAN:HU_WiperRainSensitivitySet = 5"",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 1\n2.BCAN:BCM_WiperRainSensitivity = 1",
    "test_level":"扩展"
}},
{{
    "subsystem": "雨刮洗涤系统",
    "function_module": "自动雨刮",
    "test_name": "自动雨刮_灵敏度设置反馈CAN信号_无效边界值测试",
    "preconditions":"1.电源模式为ON",
    "operate_step":""1.发送INFOCAN:HU_WiperRainSensitivitySet = 1\n2.电源模式为START\n3.发送INFOCAN:HU_WiperRainSensitivitySet = 6"",
    "expected_results":"1.BCAN:BCM_WiperRainSensitivity = 1\n2.BCAN:BCM_WiperRainSensitivity = 1",
    "test_level":"扩展"
}}


]
```
'''


a = '''

前置条件扩展建议：
1. 若前置条件中有发送动力总成状态信号为running，可以加入发送雨量传感器信号(RLS_LIN2:RLS_Status_rain_sensor = 0x0=）
2. 电源状态可以考虑On、Start、Off三种状态的切换。
3. 若操作步骤中有INFOCAN:HU_WiperRainSensitivitySet，可以考虑在前置条件中也加入该信号的设置。
4. 可以考虑删除一些断开开关的操作。
'''